This invention relates generally to the operation and control of programmable test instrumentation. More particularly, it relates to a system and method for computer-controlling a programmable test instrument for acquiring or generating signals in two dimensions. Typical such programmable instruments include digitizers (voltage vs. time), spectrum analyzers (amplitude vs. frequency), power supplies (voltage vs. current) and waveform generators (amplitude vs. time).
Stand-alone (or manual) instruments are "programmed" (or set up) by pressing button and/or turning knobs on their front panels. These controls directly affect the configuration and thus the operation of the instrument. These controls are often labeled in terms of the circuit or circuit function they affect (e.g., "gain" control on an oscilloscope vertical amplifier), rather than in terms of the function the user wants to accomplish (e.g., "increading vertical resolution," or "magnifying"). The controls are also commonly defined in terms of one another (e.g., vertical offset defined as percent of vertical scale) and manipulating one control can thus affect others.
An example of such an instrument is a microprocessor-controlled oscilloscope disclosed in Rode et al., U.S. Pat. No. 4,162,531.
Through a variety of hardware techniques, instruments have been connected to computers so that the computers--under program control--can send messages that will establish instrument settings (thus controlling the instrument) and receive information from instruments U.S. Pat. No. 4,507,740 to Star et al. discloses an example of such a test instrument, a dual channel digitizer controlled by a local microprocessor having external communications for programming the microprocessor from a main computer.
High-level programming languages (e.g., BASIC and FORTRAN) have been extended to provide means to express the desired instrument settings. Beneath (or behind) these language extensions are drivers (or subroutines) which interpret the control expressions in the high-level language. These drivers convert the meaning of the expressions into the communication protocol required to control the instrument. For certain instruments, drivers may also report the state of the instrument (e.g., the control settings and error status information) as well as data that the instrument may sense.
These drivers are essentially the same as those computer operating systems used to communicate with peripheral devices such as terminals, disk drives, and magnetic tape drives. In these programmable systems, the user must communicate with the instrumentation in terms of its conventional control settings (e.g., amount of vertical offset, vertical scale factor, etc.). The user must understand not only how to control the test instrument but also how to communicate the desired controls in the program language.
Many high-level languages have also been extended to provide means for graphically displaying data returned from test instruments (e.g., digitizer). These languages rely on windowing modules (subroutines) to convert acquired data (e.g., digitized signals) from the coordinate system that the data represents (e.g., time vs. voltage) into the coordinate system of the display device (CRT). With the data transformed into display coordinates, graphing modules (subroutines) interpret language commands like DRAWline and FILLAear. Commands like these take display coordinate arguments and produce instructions in the form that the display device requires to render the requested figure.
High-level language elements, windowing modules, and graphing modules have been widely used to produce graphical representations of data stored in computer memory. They have also been used in conjunction with graphic input devices (e.g., thumbwheels, joysticks, mice, etc. which control a display cursor) to interpret the cursor's screen location in terms of the coordinate system of the displayed data.
This type of display system enables the user to display the stored data in different scales, but the resolution of the data displayed is limited to that which is stored. Zooming in on a portion of a waveform cannot add any more detail about the waveform than was originally stored. Also, the stored data is limited to the record length of data stored. Thus, zooming out beyond the dimensions of stored data does not make more data available. To overcome both of these limitations requires the user to reprogram or reset the test instrument.
In conventional manual operation of a test instrument, e.g. a digitizer, the user operates the digitizer's controls in response to the graphical presentation of the acquired data. Though the data is typically presented in a time/voltage coordinate system, the user must manipulate several, sometimes interactive, controls until the acquired data is acceptably presented on the display. In the manual situation, calculation of settings is very rare. Instead, users search through the settings, with little regard for their value, until the picture looks right.
The operation of a programmable test instrument, such as a digitizer, from high-level languages requires forethought and calculation. Thus, programmable instruments are extremely difficult to use in an interactive manner. When possible, interaction is achieved by allowing selection from a menu of choices or by requiring the user to type in a setting value that is read by a program and passed through the device driver to the digitizer. When the new settings are received, the digitizer acquires new data, returns it through the driver to windowing and graphing routines for presentation on the display. The user then sets goals in terms of the displayed data, but must transform these goals into terms of digitizer settings in order to act. If more than one instrument is being used, each must be set separately. All of this entails much complexity, and required substantial expertise, time and careful work to accomplish successfully.
Accordingly, a need remains for an improved method and apparatus for controlling test instrumentation to set the dimension of a signal acquisition or generation window for a test instrument and graphically displaying the signal as actually detected.